﻿using LJF.Common;
using Microsoft.EntityFrameworkCore;

namespace LJF.Models.Models
{
    public partial class ManageSys_DATAContext : DbContext
    {
        public ManageSys_DATAContext()
        {
        }

        public ManageSys_DATAContext(DbContextOptions<ManageSys_DATAContext> options)
            : base(options)
        {
        }

        public virtual DbSet<XtMenu> XtMenu { get; set; }
        public virtual DbSet<XtPermission> XtPermission { get; set; }
        public virtual DbSet<XtRole> XtRole { get; set; }
        public virtual DbSet<XtRolePermission> XtRolePermission { get; set; }
        public virtual DbSet<XtShuJuDx> XtShuJuDx { get; set; }
        public virtual DbSet<XtUser> XtUser { get; set; }
        public virtual DbSet<XtUserRole> XtUserRole { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
                optionsBuilder.UseSqlServer(UtilConf.GetConnectionString("SqlDSN"));
            }
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<XtMenu>(entity =>
            {
                entity.HasKey(e => e.Sno);

                entity.ToTable("XT_Menu");

                entity.Property(e => e.Sno)
                    .HasColumnName("SNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("([dbo].[GetSNo]('XT_Menu'))");

                entity.Property(e => e.Bz)
                    .IsRequired()
                    .HasColumnName("BZ")
                    .HasMaxLength(200)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Cjsj)
                    .HasColumnName("CJSJ")
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.Cjsno)
                    .IsRequired()
                    .HasColumnName("CJSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Href)
                    .IsRequired()
                    .HasMaxLength(50)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Icon)
                    .IsRequired()
                    .HasMaxLength(50)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Id)
                    .HasColumnName("ID")
                    .ValueGeneratedOnAdd();

                entity.Property(e => e.Image)
                    .IsRequired()
                    .HasMaxLength(50)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Isdel).HasColumnName("ISDEL");

                entity.Property(e => e.Target)
                    .IsRequired()
                    .HasMaxLength(50)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Title)
                    .IsRequired()
                    .HasMaxLength(20)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Xgsj)
                    .HasColumnName("XGSJ")
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.Xgsno)
                    .IsRequired()
                    .HasColumnName("XGSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");
            });

            modelBuilder.Entity<XtPermission>(entity =>
            {
                entity.HasKey(e => e.Sno);

                entity.ToTable("XT_Permission");

                entity.Property(e => e.Sno)
                    .HasColumnName("SNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("([dbo].[GetSNo]('XT_Permission'))");

                entity.Property(e => e.Add).HasColumnName("_Add");

                entity.Property(e => e.Bz)
                    .IsRequired()
                    .HasColumnName("BZ")
                    .HasMaxLength(200)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Cjsj)
                    .HasColumnName("CJSJ")
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.Cjsno)
                    .IsRequired()
                    .HasColumnName("CJSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Delete).HasColumnName("_Delete");

                entity.Property(e => e.Id)
                    .HasColumnName("ID")
                    .ValueGeneratedOnAdd();

                entity.Property(e => e.Isdel).HasColumnName("ISDEL");

                entity.Property(e => e.Output).HasColumnName("_Output");

                entity.Property(e => e.PermissionName)
                    .IsRequired()
                    .HasMaxLength(20)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Show).HasColumnName("_Show");

                entity.Property(e => e.Special).HasColumnName("_Special");

                entity.Property(e => e.Update).HasColumnName("_Update");

                entity.Property(e => e.Xgsj)
                    .HasColumnName("XGSJ")
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.Xgsno)
                    .IsRequired()
                    .HasColumnName("XGSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");
            });

            modelBuilder.Entity<XtRole>(entity =>
            {
                entity.HasKey(e => e.Sno);

                entity.ToTable("XT_Role");

                entity.Property(e => e.Sno)
                    .HasColumnName("SNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("([dbo].[GetSNo]('XT_Role'))");

                entity.Property(e => e.Bz)
                    .IsRequired()
                    .HasColumnName("BZ")
                    .HasMaxLength(200)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Cjsj)
                    .HasColumnName("CJSJ")
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.Cjsno)
                    .IsRequired()
                    .HasColumnName("CJSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Id)
                    .HasColumnName("ID")
                    .ValueGeneratedOnAdd();

                entity.Property(e => e.Isdel).HasColumnName("ISDEL");

                entity.Property(e => e.RoleName)
                    .IsRequired()
                    .HasMaxLength(20)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Xgsj)
                    .HasColumnName("XGSJ")
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.Xgsno)
                    .IsRequired()
                    .HasColumnName("XGSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");
            });

            modelBuilder.Entity<XtRolePermission>(entity =>
            {
                entity.HasKey(e => e.Sno);

                entity.ToTable("XT_Role&Permission");

                entity.Property(e => e.Sno)
                    .HasColumnName("SNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("([dbo].[GetSNo]('XT_Role&Permission'))");

                entity.Property(e => e.Bz)
                    .IsRequired()
                    .HasColumnName("BZ")
                    .HasMaxLength(200)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Cjsj)
                    .HasColumnName("CJSJ")
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.Cjsno)
                    .IsRequired()
                    .HasColumnName("CJSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Id)
                    .HasColumnName("ID")
                    .ValueGeneratedOnAdd();

                entity.Property(e => e.Isdel).HasColumnName("ISDEL");

                entity.Property(e => e.PermissionSno)
                    .IsRequired()
                    .HasColumnName("PermissionSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.RoleSno)
                    .IsRequired()
                    .HasColumnName("RoleSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Xgsj)
                    .HasColumnName("XGSJ")
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.Xgsno)
                    .IsRequired()
                    .HasColumnName("XGSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.HasOne(d => d.PermissionSnoNavigation)
                    .WithMany(p => p.XtRolePermission)
                    .HasForeignKey(d => d.PermissionSno)
                    .OnDelete(DeleteBehavior.ClientSetNull)
                    .HasConstraintName("FK_XT_Role&Permission_XT_Permission");

                entity.HasOne(d => d.RoleSnoNavigation)
                    .WithMany(p => p.XtRolePermission)
                    .HasForeignKey(d => d.RoleSno)
                    .OnDelete(DeleteBehavior.ClientSetNull)
                    .HasConstraintName("FK_XT_Role&Permission_XT_Role");
            });

            modelBuilder.Entity<XtShuJuDx>(entity =>
            {
                entity.HasKey(e => e.Sno);

                entity.ToTable("XT_ShuJuDX");

                entity.Property(e => e.Sno)
                    .HasColumnName("SNo")
                    .HasMaxLength(100)
                    .IsUnicode(false)
                    .ValueGeneratedNever();

                entity.Property(e => e.BianMa)
                    .IsRequired()
                    .HasMaxLength(4)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Bz)
                    .IsRequired()
                    .HasColumnName("BZ")
                    .HasMaxLength(200)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Cjsj)
                    .HasColumnName("CJSJ")
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.Cjsno)
                    .IsRequired()
                    .HasColumnName("CJSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Id)
                    .HasColumnName("ID")
                    .ValueGeneratedOnAdd();

                entity.Property(e => e.MingCheng)
                    .IsRequired()
                    .HasMaxLength(100)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Xgsj)
                    .HasColumnName("XGSJ")
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.Xgsno)
                    .IsRequired()
                    .HasColumnName("XGSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");
            });

            modelBuilder.Entity<XtUser>(entity =>
            {
                entity.HasKey(e => e.Sno);

                entity.ToTable("XT_User");

                entity.Property(e => e.Sno)
                    .HasColumnName("SNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("([dbo].[GetSNo]('XT_User'))");

                entity.Property(e => e.BgColorDefault)
                    .HasColumnName("bgColorDefault")
                    .HasDefaultValueSql("((1))");

                entity.Property(e => e.Birthday)
                    .IsRequired()
                    .HasMaxLength(10)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Bz)
                    .IsRequired()
                    .HasColumnName("BZ")
                    .HasMaxLength(200)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Cjsj)
                    .HasColumnName("CJSJ")
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.Cjsno)
                    .IsRequired()
                    .HasColumnName("CJSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Email)
                    .IsRequired()
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Id)
                    .HasColumnName("ID")
                    .ValueGeneratedOnAdd();

                entity.Property(e => e.Isdel).HasColumnName("ISDEL");

                entity.Property(e => e.Name)
                    .IsRequired()
                    .HasMaxLength(10)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Phone)
                    .IsRequired()
                    .HasMaxLength(11)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Pwd)
                    .IsRequired()
                    .HasMaxLength(32)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Xgsj)
                    .HasColumnName("XGSJ")
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.Xgsno)
                    .IsRequired()
                    .HasColumnName("XGSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");
            });

            modelBuilder.Entity<XtUserRole>(entity =>
            {
                entity.HasKey(e => e.Sno);

                entity.ToTable("XT_User&Role");

                entity.Property(e => e.Sno)
                    .HasColumnName("SNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("([dbo].[GetSNo]('XT_User&Role'))");

                entity.Property(e => e.Bz)
                    .IsRequired()
                    .HasColumnName("BZ")
                    .HasMaxLength(200)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Cjsj)
                    .HasColumnName("CJSJ")
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.Cjsno)
                    .IsRequired()
                    .HasColumnName("CJSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Id)
                    .HasColumnName("ID")
                    .ValueGeneratedOnAdd();

                entity.Property(e => e.Isdel).HasColumnName("ISDEL");

                entity.Property(e => e.RoleSno)
                    .IsRequired()
                    .HasColumnName("RoleSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.UserSno)
                    .IsRequired()
                    .HasColumnName("UserSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.Property(e => e.Xgsj)
                    .HasColumnName("XGSJ")
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.Xgsno)
                    .IsRequired()
                    .HasColumnName("XGSNo")
                    .HasMaxLength(20)
                    .IsUnicode(false)
                    .HasDefaultValueSql("('')");

                entity.HasOne(d => d.RoleSnoNavigation)
                    .WithMany(p => p.XtUserRole)
                    .HasForeignKey(d => d.RoleSno)
                    .OnDelete(DeleteBehavior.ClientSetNull)
                    .HasConstraintName("FK_XT_User&Role_XT_Role");

                entity.HasOne(d => d.UserSnoNavigation)
                    .WithMany(p => p.XtUserRole)
                    .HasForeignKey(d => d.UserSno)
                    .OnDelete(DeleteBehavior.ClientSetNull)
                    .HasConstraintName("FK_XT_User&Role_XT_User");
            });
        }
    }
}
